#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

#include <QPushButton>
#include <random>
#include <cmath>
#include <QRandomGenerator>
#include <algorithm>
#include <QtGlobal>
#include <QTime>
#include <QTimer>
#include <QDateTime>
#include <QMessageBox>
#include <QLabel>
#include <QVector>
#include <QString>
#include <QDebug>
#include <vector>
#include <string>
#include <QLabel>
#include <QImage>

#include <QMediaPlaylist>
#include <QtMultimedia/QMediaPlayer>
#include <QSound>

#include "coordinate.h"
#include "state.h"
#include "computer.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

public:
    // 滑动滑块操作 更新
    int* generate(int N);
    void update(int a,int b);
    void timeoutShow();
    void restartGame(int X = 0); //重新开始游戏
//信号
signals:


private:
    int N;//滑块个数
    int* p;//存储的滑块数字数组

    computer *computerWindow;//计算机窗口

    Coordinate *Void;//空滑块

    QPushButton *Block;//滑块按钮

    QSound *blockAudio;//滑块音效

    static long long int totalSteps;//记录总步数

    QLabel *step;//步数
    QLabel *time;//时间

    bool isBegin;//游戏是否已经开始

    QPushButton* computer_player;
    QTimer *timer;//计时器

    QDateTime *startTime;
};
#endif // MAINWINDOW_H
